<?php

class App_Db_Helper
{

	/**
	 * 
	 * @param string $table
	 * @return boolean
	 */
	public static function addTable($table)
	{
		$db = Zend_Db_Table_Abstract::getDefaultAdapter();

		$desc = $db->listTables();

		$exists = in_array($table, $desc);

		if ($exists == false)
		{
			$sql = 'CREATE TABLE ' . $db->quoteIdentifier($table) . ' ('
					  . ' `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,'
					  . ' PRIMARY KEY (`id`)'
					  . ' )'
					  . ' ENGINE = MyISAM'
					  . ' CHARACTER SET utf8 COLLATE utf8_general_ci';

			$db->query($sql);
		}

		return !$exists;
	}

	/**
	 * 
	 * @param string $table
	 * @param string $column
	 * @param string $definition
	 * @return boolean
	 */
	public static function addColumn($table, $column, $definition)
	{
		$db = Zend_Db_Table_Abstract::getDefaultAdapter();

		$desc = $db->describeTable($table);

		$exists = isset($desc[$column]);

		if ($exists == false)
		{
			$sql = 'ALTER TABLE ' . $db->quoteIdentifier($table)
					  . ' ADD COLUMN ' . $db->quoteIdentifier($column)
					  . ' ' . $definition;

			$db->query($sql);
		}

		return !$exists;
	}

	/**
	 * Removes <em>column</em> from <em>table</em>
	 *
	 * @param string $table
	 * @param string $column
	 */
	public static function removeColumn($table, $column)
	{
		$db = Zend_Db_Table_Abstract::getDefaultAdapter();

		$desc = $db->describeTable($table);

		$exists = isset($desc[$column]);

		if ($exists)
		{
			$sql = 'ALTER TABLE ' . $db->quoteIdentifier($table)
					  . ' DROP COLUMN ' . $db->quoteIdentifier($column);

			$db->query($sql);
		}

		return $exists;
	}

}